package cn.com.demo.config;

import cn.com.demo.util.MD5;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;

/**
 * 自定义密码加密方式
 */
@Component
public class MyPasswordEncoder implements PasswordEncoder {
    /**
     * 加密密码
     * @param rawPassword 原始密码
     * @return
     */
    @Override
    public String encode(CharSequence rawPassword) {
        return MD5.encrypt(rawPassword.toString());
    }

    /**
     * 密码解密
     * @param rawPassword 原始密码（页面提交过来的）
     * @param encodedPassword 已存储的密码（数据库等）
     * @return
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        return encodedPassword.equalsIgnoreCase(MD5.encrypt(rawPassword.toString()));
    }
}
